//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package 力扣.题库.滑动窗口.定长滑动窗口;

import java.util.HashMap;

public class demo_1297 {
    public demo_1297() {
    }

    public int maxFreq1(String s, int maxLetters, int minSize, int maxSize) {
        int n = s.length();
        int max = -1;

        for(int k = minSize; k <= maxSize; ++k) {
            for(int j = 0; j < n - k; ++j) {
                HashMap<String, Integer> hm = new HashMap();

                for(int i = j; i < j + k; ++i) {
                    String str = String.valueOf(s.charAt(i));
                    hm.put(str, (Integer)hm.getOrDefault(str, 0) + 1);
                }

                int count = 0;
                if (hm.size() <= maxLetters) {
                    int index = 0;
                    String str = s.substring(j, j + k);

                    while(true) {
                        index = s.indexOf(str, index);
                        if (index == -1 || index == n) {
                            break;
                        }

                        ++count;
                        ++index;
                    }
                }

                max = Math.max(max, count);
            }
        }

        return max;
    }

    public static void main(String[] args) {
        System.out.println(maxFreq("edaafceebdbafdeddafceebbcaefcbaaeedecdbefdaeebfbdadfecaeaabaefbfececdefcafbffcddeffffcacabbfcadbbfbfbfdebbdbdceebfecbafffcffcecafdbbdcbebedeefebdaaabeabdafeaecccfeabbcacbefaeddcfdfdafbfcccdfedabbdabbbbeacdcbceacefadfccafdeccfbafecadcdbcebafcffecafcecbbefbdeabdeeccceceefabbaeecadebdaccabbfcfbdbdaecdbdcaadfeeddfaccaebabebfceebebeafeaaefabbeaaddcfeeceecedbfbffadabeddcdddeafeddfafddddfbcfcbcacffdedecedeacdebdceaeffacbbafeacfffeacddaedccddebdedccbecbdcdbbbbebcaaeecdcaafffbdcddeacceaaddbebdffeaffbfbfccfbdceafcfdabfeccfbefdffbeccefcfaeaddbfeebdcadbaaeabadabeeecadcadbbfcafdadddfcecccdfbdeffebbccaacddedacedabccbcfcdcaddcbcbfcfccebfacffecdcbfabaabadaccfabedcccdddaefacbfbbeccefadbfaadfcdbdeefcbddfffecbfdddeaabadefcedfaaedcdafbebdeaaccefddcacaecadadebabdceedcefadecaadcffcbafafdcafffcfddcbecedfefaddeacdbcdeeaebdbcaefdabadebebcdafbbfadcbeccccfcfdfefddabbabdcfeeabdcbdfcbdfebfebcfadecdecfadbbcfecbebffbefaadfdccaeecbbfbbfeeeaedddebbefdaabececddcecbeeeebdbfacfbafeacabfbcccfbcaccabccacfdbebfbdbccfbcafdcdebccfdbcfdafebeecabcaacbfabebbfcfdcecffcfbaebfcdfebeffefdbeaefffacfeaecfebbbfeaeccedddecdabebdeedcffacecfbabdfdbfedadcfedfedeacaadcdcfeadbdbdaacdaedcfedbbefcdfadacadddcfcabcabfafdbcfcbbbbadaeaeaefdccadbfbcbbddfcdffbaebabaedcabcbfeaeefcaceedfbdbcbffbfefeffaaadabddabecebefedfbeffcbaeecbdbbcaedbadedfacdfdccdabeceefcaaafceefdeccfacafafceeefaefffbbaabfdbabdefbeefdfccafacecfefffdbafbaedfbfeaadceeedafacaeeabefcfaebeedbaafbebbcedababeacfeeddfdfdedfedfceeadfdaebefceccddecffecfbaabfbbadcaeecefaaaddffbccbbeeaababeafbdafeacbaabcdcfaccedccebbbeaecbafecfbafbadaecffeaecfdaadeefdbabcaedbbffdbffeddcdbaafedbfbddbbefdcdedebbdbbdcdabffbccddaffbedaeabfafaebeecdadcfafedeefcafcfebbfbbacebcaffcecbacfefaacbeeabfcfdceecfdfcfdebaaedfcebbaddeaccedeadbdabcbbfcdebfbcaaefcaacbdaacbebebdcfeabceecbbaddfecbcaffafdfcacaaabbdadfdacceadbfbefdedfeaacdfbbffccfedeabbcdfffeeaecfacaceaaecbfbfeddbcbfddcedebfedcfaceafdeddcafcfdadedaeffcfcfabfdcdecdececfbcbfaaebcdabbffeeafaeaceccdffefaecaaaafeabfaacaafdbcabebabbdaaafefbabcabdedaedbeaeaadefdadeebdafbbbcdffaddedcababcecbcaffcfdfbadfbeadceacfaaacebddbbdaaadfabaabbbefbbaaacebaacacaacddccceaeaaecbfeffefcbcaedaebceefeeeeeefceaeaebeefbaeffddadeeffeebbddedbacfefffdacfbdafabeeaabcbcaadeafaefcbcdeaedfdfcfaafceeebacdbfdcfcbffaacdaaeabeaebdefecfefcefbbbcacbffafebdcccbafbfcafdbafdcfaedcadeeefbfeddffaafaffcaddfbcedcedcaacdbfdddffdeeedecdfbcbedbeebefcaaccbeefdeaeebcdeadcaabafceafcfdceefabafabafaaafeadbdfcdcbccedfccfbcedacdfbaaafbfebcaadbbcccdbbdbcadebaddcbbfefcdeeaeecbeafaedffecdadebbfbabdbbccaedfcbbcfdbffcfbbbccebcabfacafacacbdbaadbebeaebceecfcdcbcfabcfccacfadcdcdceeafbaedccfedfcdebdbecefdbecbeefafbdcccbdbeddccebbedbabffddaeffebceaaeecbbfaccbdcefdefedcacecddfbafbebdbfeacbddacefaeacaededbbdeefbdeebbdfbbccaefeaaecffddcbbfeaaeaddeddbdafeaddfeecadbccceabcaffddecfccfdecdeadfefdfcdafdcbaddceabeffdebfadcafebeacecbbfcacbeedeccffcbafdecbddbaeaebdbddcfeaadafacfbcffafeccfbdbabacdeffcecdbcadbbedccfaaddcdcecbbafbddcecbbfeeffbcfdcbabbddfbafebfcefbafdbcefddefdbbdbfeadcbfabebddeffbbddbaebfbddfddccddeedbecbcccddbfafbdacbfebfdcddfaffeccfdeebebccfaddeccbdcdaacaedbcfccfcbcfcadadacfebcaffcfdadbdfcbedbebdbdcfeaafeeaaeccecfcadaecadebbadfbaeeccbbeacdecfedffbdacebbdcefebfdebcadccaefcdaddebcddfdbfceabffcfdfbccbaeabacdfdedcbcdffaafffcaeaaddcaecfddadfdeaddddbedfabcfbaecdbbfeedbafffcbbecdcefefedbcddaaccbaebedadacedeeceeeffebffecdaccafaecedededeeabedacecdcefaafabcfcefdafaeedccebdccacfddeedbcafbfbdccedffbebdfcbecacebceaddcaecfaefcefbaaaacadeffbbacaecccdcedfbcbebcceccaabfaedffdceddbbbebbddcbeadbbdbafcbbaecababacddebcccfaacfceedabefaafefbceaebacdbcdcecdfffceacaabcbdaeeccbafbabcafafcedaecacddbebcfdecdebffabeaceabadcbcbbacafcbcbaecbfcaddbaaaaebfeadeddbebaafbccddcacdeeddbffefbcfdaceeeacebadfafaeddeabdcacdaebabbcabcacadcefcdbafdefcccfcaefeabfefdbdfcfbcbdabcbbcdfadfccdaeffbbfdfeaafdddaacfaccfefceaaecaedbdcacfbfdcbecabbbcccadcecbcdfafcedcdcefaeaeadabbabbfbcadceeecadfcfcecfdeecfcfdbefcdcdffbdaddacdadfadbeaccdabadadbdceebeeffedbdecadceeabeddbedbfbdaedddbcceadfebdbeeafaecacbbcfeafbddcdfdabbeedbbffefebbbfcccabdfdcbfffdbadecbaefdecdcbddfddbbcdbddccacfbfaacfdbcceeeffdfaebbdbfccbdccbfeccdfdecbaaecbfbdaafeadfcccbbccadeeddaefdeacdaafbabedaeeaacbbfddfedbffeefcfbedceccfcdfdaefaebbadebdedcaadfddbfbdbbdfdafbfbeceaddcffafdfadffedfafcdffbecdfdeaaecbafebdcbdbebabecbddadabdccfeddaffcdbefefbcdadaadbebcccedcbfbdccfafdddeacbffcfafdbcffffeceefeeddabbcaafdbcbdabafdebfecffeedcdfdbdfcfecbaeaffcdfdcffaebcdafeadeafffebecbecdceceacafebeecaeabdacfaecdeeeeadbdeefebfdeefaacfebcedadedbdcffeabacefefeecbeedbfcbdceeedacebaebefeddbfbacdfbcdbabfdbdbfdbedccecdbaaebadcaeabfaeccbebaeaecebdcfcfccfacadcffdfedeabbdbffbcfeeadbdbdfabcfebdcfeeffaddefbfacaeddfacefadecfcffebdfaaddffeeedbfdfbfceedaceadaffcdfedffafeabfebfffadaeebfdbbffdefcaafececbadaaaefedcececefcccecccafddaddbafdefcfeeacacffaefefecaebcadcadeaefbdaddcbfcfbdbcbeefccaafdefafdeeceebfeadccaeacdebfbbbdbcebdcdaeefadffcbedbdebdebeedfdeeafaffddaebbcddfadcdecdbedbafbedadeafaceaceabffbcefeabdbeabeaebfacadfbbbcdbbfaefbcaabaeefeeabdebfdacecaefebddbceebecbcfcfdbaecadcfefeaaedfcdeaabfdcfedceaefbaecefbbbdbdbbfecabfcabebbcbdbcfffacccacdfaeeaedeceadbecddffdaafeacceffdddefaefcadcbecacadddfaffbefeaaecfeaedbaeeccfcaffffebcafeedefbeabbcccfabbedcbdadfebeaadcfcdaefffddabbfccfeeecebfadecdffcabccaccabffccbbbaafdfdafeeaaecdefbcefcdcffcbcfffdfcbfcbbafbdcdbacaaadeeeeeaaedeedefcdcffecbebaceedfebafbebdeecbbadaaabfdbbcfcfaacbbaefacdaccbdefbdacacbdcedecaaabfdfcccccfaebebacebdbaeedcddabeabfcfbbebedeefefbcfcbeeeccededcefafcdfaeddeebefbfcfcfdeeeadfcadddfbceccabdbfaaaedafcaebfeadabdeebaeaddffcfefbacddeeddefbeafcfecbdcfaedfdcaadfceacbdcbbddeeaeecfeeabcecceddffabedaddabcebdbfacddbecfeadcbefafafeddafccdbaefeceaffbefbfbcffffddafebcebddfbbcaccfcfcfffcfcfcfbfbbaabbdfeafeffaacdfccbfcccdffabdcddfaddbadeeedbbdcdafaccbfaafcbfaaccbbebabfbffcaddddcacfcdbcfbdcecbccfefaadcbaceeabaefdcabdbfbeeebafedeacfefdafecaffcceadcefbbaaacefbdcedcdfbdeecbdebeeddbfdddebabfeeabeeabcfbafbeabaeaddddacfeebdbeceebaeddadabdebadccdacdbcfacfbeccbfedccdceadfcaeffefcaafcbffcfaeedacadbaaadfcdfebfbacfdbcaaacdcccdddceeafedafaabfdecbaddadcdeaffdfdbdcbffafcfdacedeaeadedfaddeaafabbafeeabdaffaceeacacbfcbcccabedffadccdfdbebdbafdcebdacaffcdebbbecddaadaeeaedfdbdcbeabfecbecccfbdaeafcbabbddffdadcaffcedcdfdddffecddbcceeeccaeddbbeeddefaeaafcbfdcfebbccecbeedfafdaddbccbfacbfbafccedddebbdedcdfcfaafcdaebcaaabefaadedbfbadfcfbbdfabebbdbcdefafecbdcccfaaffffdcabecaebceadbebddafaccbcbfebdeaddfcfdfcaedeacebaeeaadeaffbffafbffadbadfccdfebdacaeddbfcaddafacedcefbcfbfabfbfbafaddbebaedbefdebbffcacbcbffedfcccafdabaaeddbdeeacbfefbcefacddfbcddacbdabdcebacaadacacbabadbdccddfdfbcadbfaadbaaeedaffcfddabbdacbccbeddaaddacebadaafcdbdfedcfbfddacdffcdbaeecfbaefbabfacdfeaeebedecbcbaacbedcefddbcdacdedebafefddacdecfffdcffefaaaeacbbdcfdefcafceaadababdacbbccfbadfbcffdcaccceceedecbbcdbccebfefddceeccecedddccadeadeaefbbaacbbecdbeefabdaefbbededafbbeeccfdfdebcbfdeeaddbcaacfacafedfacebecdfdaceabcbaccdccceaadeeeedbcbddddbebfbabbefdbefbcaaccadaeefdeedecbdcdfeedaeedfbccdffaefefadcdfbfbafecadafabcfbaaaddbedfeabecfcabcecfbddabbcfacbabcbeddddcffecbaccfdbbffbedcceceddafdcfddedfbdbaabecbfccecddbaeecbeffcbbffadaefebcaeaddaeedefbfcccaaaadfbfadafccefeddcdbabafbefddebefabfebeafcdadffafdbdaefddffbdcecdafcfdcdfbebbddfbedefbfeeaaddeeeeeabaccefbbabfeaebcbecfcfbebadabeeaefcfaefedbecfddbabfbabdedcbdffefbebcdcabaceacfabacdcdbebdebdfebdaedaadfefdaffdefdafdaaadaacdbdbcfcbcbcbdeddbfcabdfcadcedebbdfdfafbfcefafdcceeccbddfcdfefcdeeaccacfabcaabfbbedfefaaeafbfdcdbffeacddfbfedfeefafcaebffdaadeadaebfbdccbddacdacaccbdbdfcdeeefafefcffafbeddadbbaebbddbabcdfabcfddeabddaeefbbeddbbcdbdefbccdaaeeeaefbeeeffbaffffaefdafcaeeeaadcafadeabcabbabacacabffafebffbfadafdcdfabfdefdacbaadfedcaffbabefaceeabcefecebcfddfacecefddffcadffdfdfaefdabeaaceeeefaafedaaadddfbefdceecbcbadfcfcebcfdecafbaaafbbadaabaaeccdfcebcdcbadafbabdceffaaaffbbbeefafbaebafbbcbbdbaadcaadbeffbfbbecfbdcecdcbaebddaffcfedeccfecfffecfdcafcbfbdafabecedfafedcbfcabfeaaedafeeaddddcabeebfcedbbafdaefadcaadfbbbebadcecffccdcbbbcedcdedccfeeeffffafbddaadfafccdeabedaffdddceecffeccffcbbffcedafcfcbbecedbddcdfdeefdbaececeaffcedfdcdfcfcaffcdacfcddaeececbdaedcedeeedaccafbdbdebcafdebefddfaadeaeaaeadebedfebeedcafaefcafffdeffaaddeadafacedfcafdacffafbcfbadcadecdbedccabfefcadeaaddcfedcabcbdbfbfcdceefaeeceafeebafadbaceeaabdfaececabededaaecacddbeaadfbcabdbbfafaffaaefdbfcdeefadfefbadbbdfacebeeeffdceddefeddfdaafcdbbfddaebfbecadcfbfdaceecefcbbccafacdfbddecedbbdbeffbdeccbcdaeffabdffccadbcebdabbefbaaacfffabbdabdbceefdbacedddedacfddedefabdcafbfbbcccbbfbdccebfbbfedacadacfebbeefddfafffaaffaedbacbeeceddcecefcdaafcbcbcfbfadfadcabfccdbaafbfffefdfcdeacbdcacacfbdeccfcffcdbdbfaacfbebbccddfdecdecbedcacdedefdadbbebacacfdcadeeceabcabecfdfedceccbdfaaccefeffebbecabbbccadefeafbbebcbfbdecedecbccaeeccddddcfdaabfadecbfecdafcbdeeeeababbedbebbafddefbbdeccdedadedfdfdcfdfbbdffffbfeebaabbafadbaebcfedcdbfffbcaafeaffeaababddccbabaecfbecfbbaebbccebfffadfcdfffbaefabdbafaeeaceeeacdcadaceddefeaebbbafaadacbeebeaceebfcbecafedaaedeafeaffbfadbaacddccfaaaabacabeeaeeeceebccedeefacaeddddbefbfabccfbbeddbbcacccdbedcadbabdaadbebfceedfafcdcdacefeaabbfeaaefefabebadcdfdafbeaecfbcfeeddfeffbfacfbfdbfbebeeeccfddddfadeaadcabcbcfeaeacdbaebeacfdbabadaacdaeaeebeeafaafbfeaacdeeaabbadcfbfadceceadfbdecbadabdfdfaadeaddacecdadddadccdedadbadadfeacadbaffddffddbafbddccfbcadcaaebcfbaaccfcaefcdbdfdcccdeafbafadaaefdafcbbcaaeffccfceefcfadcccaeaffdacafddabbdcabcdcbdeffdecaacbffadaedcbccfeddbdbdedbdddcaecccccddaebdeecbbeffbaadcdeeececdaaafffbafeacbdfacbafdabfafcabeebbfffccececeeadbcadabcefbfdddecdfbfbecabbababbaeddbcdbffbadeaaaadfbfcaafebccfccaffaddbddbbfbfbedcfdafddebfabfdcfdebceaddadcabfdddcedcbcaebdeacdeefededaafcbbabbfefadeccccfeeeaaefcaaacdbdeefbbadbcbffaafafefbeaeeafecceeedcbabecbeadbcdeaeaeedceabbdbdfeafbaefcfcfeeeabfeaeafcfabadfdafbfbaefcbbeeaddbbcabfacffdbfdefabbeafbfddecbdcfcbdbfecdefbdbafffeeafbcaddeacccbabaadfdcbdaffacffffafbabdaffeedfdbbbdadafedaeefbcaddabccaeeaebfdbcadfacddcabbcbcdcbcabecbbcfbbabedfbcacbcacfdfefdcdfcddefddeefcdcfacfcdffeeebdfdeaccfdfededbeddddeefacddfafecedfafbfdafabebccbbbdeebdedaebfcafadbfcbfaadaeebefedcafaaebfacabdfcebcccdafffdbfcaffdbfbfdfbeabaabfdcaefdddafaffdeadcbdedafcdbfbccdacbedbeaedebdaeeafcbbecefdfcdadaffbeefeddeaafaaacbfdcfbddcafefbcbafdacbfffbbcdbecddbbaedaffdaadcbcaaebefcaafecbcdddeafacbcdebcabeccffcddbebfaecbecadafdbebfdcdfddaefadfbefabbedddfcdfacbfbaaadbaecebfbdebcacdacbeefbcadbaafabccefdedffeebbaecaceaefbbcdfadffcdedeabbbdabddeacdadbaadcaaeeecbdbfcfcfadceabbfffedaadadcdbbbeebceafccafdbbaaedafcbcedadaadeebabbcbcffaeabfcaebbaedfaaccdefacbfbecdcebfbcaebeeedbeacbddadababfbebadcfcbbdafaadfbbcaebadddfbadebbaadbfabbecccaaddcdefaaccecedaeafcebbbebcbbaeeadefeedcbbbfbacfdccccabcdceefedeffeebedbdccaeaadebbfbdbacdcbbdeecdbfffccfdecbdfdbebabddafbbbdcaeaafcffebcbbdfdefdcdebedfcaafafedeaacdfcfcbfcebecbbeebcffdcccaccdbfadbbfbffefcfbceefabebdddcabdcaafcfcecffefeaebeddbaaabdafbaccbbdaedefeceaffefcaadeeceedbafacdffcbaecaeeebdafdbaeddbbecbbcedeecbbbfcadbacedbbbdaccfaedabfdeddbdebedfececebfcdcafecccccddfacbbacfbbfbfcaeedcbabaaeffebfaeceabfffbdeaddeacabdbbafadffbfddffbeddddbddbdedfcaeabedcbdffaeddbdbecbbcdbdbfdbbbbdafaecfcceaafbbffdefdcaafddfbcaedcbeedeaefcdddcacfeaaaaadffbfaeadcdcabbeeeccdbffddaacdbeebcedfebaddcfcddbfecbbbbabcddbdabbbfaebdccebcebcbfadcbecbdcedfdbedaecdbcbeabdacbcdebbdcbcaeffdaacecececdfcdcfcdcbbfbfcbcbfffccdbdaddddeeeaefefcacbeedfcfecfcaeebfebaabdeaeefbbdfdeaabebaeafdfebfdcaccdcbaaeecdafaaeffcfacefbcbcdfabcdfadafbdcebcbeddbfbeffabccfefbfbeedcbfeaceeddbaacdcbdbacedbccaffabfddadefcbceccafdfedbfaacdbfcefecbcefeceaedcbecdfcbefbbdadbaddeddfefdfcbababdddbcdcfcbefccecdacbdedaafbbaddcbdadadcddfcbbefcfccdedbbadecdecedbbaebaccbccdecfeebbfdedadabdfceadffbcccedccefbfdebadcedaadbbefccecafcdabeaeaccbcfabbfcbbbeeaadfeabbacfbcfabcdffbcdfeeebedffdafbecadafacceeeeaaafaacfdcaacbfdefbfcddbfdddfcefbecbdfaabaceabddffffbbcdfacfadbebdcbcbbffaecaabadffbbeaffbbcbbafaafccefffdfdcadeecefebcabebdebfcaabbfbcbffaeeeebecdedaaceccfdbbedcfddbfbbbcfcbaebeedcfacdaadaececfadbcfaeebbccdcfdaeabaefddacfdbadacbedaefcebbdecceedbadcdccbbdedacfcbedbdefdfdbefdbbdbdfbfcdcfefaaffbcbbbfafeaeefebfcbccadeefaabbfdabeabfdaaafccaddebfaafcdfbcbcbdccdfcbeefeadeaaddbbcbfddcdcbbabcefebceaabaafcbbbbdcebbfcebbcaafedcacffdbcbbabcdacfefedadbedfdbdcbcdfedbbacbadcebfeecebfcabbfffbdecaffaccdefafbecbbfbcacafeedfedcdfaccfcbfbccadcbdeddfefebfdaedaffbcbffeeeadaefefecabbeaabbeafdefacefacddbfeaccdecedffababbecfbdadbebcedbfbbcfbddccaebdfbebfdccedeaacadbdfffbfebfdcbdedddffefcffadfbaedcccedbcaabefccdaeefbdaabdeacdbdbeeccbcdafaecbddcdeedbdecfdfabcaceacadbfafdfeecdffabceceeafebafffbaefbbcfcbfdabcefdeecbcaefccdcdfbccdbbafdcaadcdbdacdddcebfebbbfdaeaeebdbfadbaefbbcffdfaedbbfafcebeddbeeaeacdeddfcfaceefabefacebabdcfceeeaaebfbeebedcaafcfacfcccebecadfedcbcdacdaabdcfdacfccbebdfadeeadcfdfbdedfccdebeefbffebbfffddfebcbeccdfaacaacebdcecbaaecaddbfedcfaebddabedbaadbafadfdaeaefbaddbefaacbaedacfbfddbdcdafcdcabffacdccabeffabfbcabbdadeffdbdfcddcfebcaacfbccdaadadebeeefdbaedeccdceeecedefedfffddcdcbabbabadfdaaccdaffbfddbaffafefbefafacbeebaaaafdcbfffdaafdcffddbfbddcbcffdbcedfdecbfabdcdfcacfbcfefccbccfcfaeeeedfacfafcffdcecabbaadcaadcccaaaadbeffadaeabfdcaaaebbdafbadefeaddeaaedaebffcacccbeabfbffaccdbfdcdaeafeeeafbfdceafabadebbecfdbdddbefabffedabcfebfcfbcaabfbdbdcbedbdcfdabeadaaebcbafdcecbbfdaebfccfcfdbcaaecbdebbeafeabedbfaacadeefbeecfbbcbbebcfbccdfbabfaaddabaecfebddebdcbcebccfcbfccafacefaefddbdabfbfeaddfdedbbcdfdbeebcfcdafafbdbfebbbfeabbcbbbccbaaffdeadbcecdcdafcecedccdffdffdfcdaabaaffbcfabdecdcdacefbffcfffefabffbaafeeacfedececceebacaacafadcdfeabbebbbbacafebbedaeeffeeefbfddfaffbcfdeadbbfdefcdafaabeedbbdadaececdbadacdddbeabfdbccfeffdaebbeedeccaadeedccdffaccbccfeadfeeabafbbbcdacbadaebceaeafcfbbcbeedffddfedfeedbceafabaecadebfdacaabcdfbafbfbfcbcccbaefbbdbbeedcadbdedaddeedffcbbfcfaabacbcdcecefaeeadeffeceaddebeebfebcbabadbadbcaadbccfafdbdecaeaffaecbcadaaaecfcbefadaafbaabfeeeaeedafdcffccaecbdcbebbaaeacbafdbabddbcbeaeeceadabdfdedbfceebecbbeafcaadcfeecdeeedebaffcfdababcceeedfaffbbceecdaefdadbcffcedeeedaeaeadaceffaffbfbeaebddcefeebdcfbdfbcaccdcbbecceacadbedaecdfdbcacdccecfbddcfaceeeecdadebeeefcafdefbdbcbacfbeacebdedabeebaaeedaeafebcaeffacfeeffddcfbdbcecbefcffaaecbcefdaadaffebbacdadfaeccaecfccfefebeccacacddceefceacdafcddafdcfbcfbefdbcaaabecaecddfcedadcccedbdadffbacbefadedbbffabfafcedeaadafebcceafdaeeeaaffceacfeedbefaecbabfceffbaaafefcbbaefcafbcbdafcabeacfeaefbeefbcfbdbedeeaccafcdbfcbdcbceceacedbcdacbdabfebeceeceedecfbafbabbfdffeabfdcfdbfddcdffabdadbcbbddfbcecbceaafbaceccacdedffccfcaffdedcacbeebfbcadceeeaddccebdadfcacffafadefcadedcfabbedccaafcdfcdbbecfcabbacefeeedcbfafbccefbedcccdcfaabbbcccdbbcaaffacbcaeecfdabdbedfebccdfeeacddfbcffcaccedefbefefcffdfabfcfdaecffbdaedeeededffcbcdebecaecabbbcefaefdddfeddaafecadfadafedffefefebecfeaccbcfedfcffdeaaefaeaadfccaaccfeefceeaddfadebcaeabacdbafdccfccbafccbcedcbaafdabafaeebacffcadccbcccfabeadedfecceeacfeeddebfcbfcbbfbebbdbfbfbccbcbcaebbfcfcaceafdcacfbbaabffdfeceafdfddcaddceaeaeddfbdccfcffbdbbacddffecabbfbbddbbbffedaeeeecebffffbffbffeeaaadcecfeccccfbecefdccdfcfacefaebdfcfbaeafaacfdffbddeedbddfaecaabeefbcfaeaccffdeffcadfdbcfceebafaababbbebccfadcbdcecccccbeddfdcdeddfedeafadcffcddccadaaadcdbebfcbcaacfcffedeefcbfacecbdafefffffffdfbabcffecfbaebeeeddccfbbebbebdddbecfacdcfbfafcbeebcddcfdbfdaebfbcafdeaedcefddcadcdbcdfaebdfcebccaebaabbdfbaccbbabfdbaafefdffbbdaaffdbeccadaccbccfeddacdbaeaabcdebdffafbcfbcbffaeedceefdafeefafcacfcbfddbdeaeacbbaeceaeaffcaddefcdcdfaddfbfafaaecbddfeabbedccbddedecdbcfdbcfbecdffbbabebefcaccfefcfbbabcfbdafdacddafecaccbcadbefcefdfdbcecbecbdacdcddbacdacffcbdabababcedccaaeabfbfeadedfdfbcfbefadabeacabbacdcfaeecafcbfafabeaeffeecffdefabcadafdaedacdcbbeabbeacefdefeadadeaafdddaeccedfabcbeeffcbbeaffbafdbdfccffbbccaabbacdeeefdacbafbdaababcddadfdcadfbcaccdaeebdeeadfccbdeedabdbdbdcfdcaffebafafcefdafceacebadfcdddeacbebaeabdfdfbeecfcdddbdedecfdeedbaaabdabcdeaefffeedcefabadefbbfbdbecdbdbecfbceecfbcccbcfadccacfebaacdaccbfefabdacbadcefcdfaaabfdfccbebbfdfceaadcaaaffffedcbdcfeacacefeeccbdeafcaeefbeeaeefeafbfbabefabcfdaaaeebeeebfaffbdfbccbbbbadadfffcacccdadfcdedaafcecdcfeaddedfeebbfaeaaeecdbebaffdcacbeeadeceabfdfcaeacbdcbdfbfeeddffbbcabbefcebdacceebdbbfdfdafefccbdcbcabbddaedffedcbcedffdbecbdceeabfbcebfeddeddafecedcbfebefcbbfaffecedafeedbacecfcbfeedbaabffbaceeeedcaafffecfeecacdcdcbcfcbafdbbfaafeefdefdbfcfeddadafbbdcaddaabeaeeddeaacccaecfefbdefdbdefdfceceecebfcffbceedccddfcebfbdaebffeddeedacedcfdbeaddddebeebacafeaffaeddafbfccaaeeacfbeeabebadbeeabebcfdeeabfeafcddcecdcedececaccbcfafddbabdbbacdcdaeebedbfeedcabbeddffbcedeccdffedcbcfdfddecbebebfefcadcbbbdadbbaccebfedeeeccfffaafcfffcedaadbdddfdabceaeefcbaadadabaffbacfacbacfcdcaeacdccaebaabbbdcdccfbedddcfbaeccbdcadafdcbcbdefbdbcddbfabdadecbdbbffdfabccfeecffffcdabbcbabadabacffbcccedaefbcffdfabfddaacabeedaceffbbdbebebccaedffcdeaaabafbbdaadacadadefcdffcdfadecceeacfeafdcedbcdaafdcdacfcfaeddbdceddeeeccacbefacfadfdaedcedecdcddaeebecddbeedabfefcbccfddbafcbccdceccfaeadcfecddfaffadddfdadfdecaddfbdaffdfbfdddcefadfffaebcdffbacbdcfdafcbcdfafdbbebbebbabecaeeabaccedcecaaecdabdffafaeeaccacccfccbdfdcbddeadeeeccaffffdadfedbdebeedaabeaaeddeefeaedcfafcaabbbafafbfaffdcbcaeeeccecccceabffafebcacaadcfddbbdbfcbfcfaddafdfaaaadabcaddeddeadeccdbffdccaaafedefacfdbdbdfefdbaaedddaabfcfeedeaaefffeedfedbbbdebdedeaefeadcedabbcceaaabcffdcabdbefbfafeaaaeaedfbddbabdfdaaaafadddaffddcdccccefbfdabeffafedabbadbceadcfebacccccecfcfffdffabbaeaeeaeaecaeceafacadafbfefbdebfddeefabacdfcbcecacfefbcfbdecdbedececdeefbaeeeddecaaedcfbcddebcfdccecfadfcbaafefedbacdcedebbbdbabedddcacfaccdfcdabdfbadcddbffdaefedefaedebcccddbcadffecdddccbbdfbbffbbbbcbcafdfaebeaabcbddbadecfbbdbcedaabedcdebdfaefcdbaebccaeacbaaaaffdeaeddabedcebcaeafbfbdabfbfedfbedfccdacffebaabfcbbacddeccbceabccbfbcddacaadebeccfaffadaaafdcfaffbecbafdaeffeecbcfccbcbdcdfdcfcecaaeecedbfddecacbdfcdbbedbabfcdbcdcfddaefeefbabfddacbdcdbebffeadffbeefbcdaeccdbcafeefccbdafdcfdbdcedaffddfdcfbbdadddedadfeaeecbfabecabcfddafdbdccdfbfbadeebbcfaddcdadafcffdecdddeeeeddefeadfdafffbdbbfbeabeefcebcadddafbafbccfbdeaaacebaddeabafbbaeddebdacefcfcefeafcbaaeceebcdccdcbfbefbcecfbdfbbdbbcecccafaaabdcbfbfbacfbfafbabafdbbdaaadefabcddbbdfcbcadededceebceebbbdffbbccbfcabacadaefefdbfacacdcbafadafaedbfebabdbddaedbbffbccbcbaeefeaabfdfbfdaebaebfabaacddbcebbfcededbaababebeeefebbfdcbcdbccabadbaccfbbbdbcdfbbbeaeccaffceaedbefbfcffaebcfddfbcdbfdabbaccbfffbcfccedfaeafddedebeccadbcbdcffecdebeceeaeecdfadbfafbbfacbddedbaddfaabaefeedbbdadbcdfeebebaffadffcbbfcbbcaaabcacaeaacdadeccfcefcfadabfeceafadcdedcdaeccaccfaaebaaffbebffcefeafcfaedbbdbbfcaecaeafbfbbcbdbccfbbcadfaeddeffbdfbeebfefaadddffeedefbafcaabcfdebfafbeefefdecaebfdfebaafebeecaaccadbfffcebaeeccccfacbdfbcaabaccaafefbcceffdbfcccdcbdfddffcffcdcaaabcafceadedcfaaecabfedcffeacdbaecaeffcefefebdbfacdeafcceeacdbcbadeaaabbeddfaecbabbaaaccbecfdadadfdaadfaaecdfdececbadadccbbebabdfdeaacebcdbfffaddebbbbddcdcdabceecdcbefceadebbdbbcbecddbbcaafabfefbceecceebcbeeffebfbaadcfffeedbccfcabbfddeebaccdddcfebbfeedfaebcbccabdbdcebbfaeadbcbeabcbdaccfbafaadbdbebbaaadfbdefdfafcadbeffeccdeffaceacfbccefbcbabfdafeeaddebfeafefbccbafcdcdddecbabbecfdaeebccccecfaffabefeeeefaebddddcfdebfcacfcefaaadddafcfeeccdabcabbcacdeaeabedefecfbaceabdfceeadbaebdaeaccbaccfbadfbcfcaefbaadbdebffafedcaebeeabfcecbaeeeaacfaafdaaedabfdfcdddfeefbaddcacbffafbdacaedbbabecffeedcfadfdbeacaebeefcfcccfacdbbdcebcefbebadadeaeeafcfdefbbbbfbabdaffcdffdfdaddfabcdcbebdfaaadfaddcacbaceecdedcfdbdabbfcaffddfceeeddbcfbfcfffaeeebdbcdeadcfcabadabaafefeeeacdbdfeabdaeeafceccfbcaafcfefefeacbdcbfeceddfeceadabfaffdffbceddaaedafbbbdbfbafdccbfedaceaefdecfdadbafdaacdaffaecafcfeabdfcdfceaeddfaccbeabcedaddacbaeaeaaddbaddeedaefcfcabbdaaffcefbfaedabcbdfacbaaedccbffdbececdfecddcbecccfababcdceaeaaddccffedabebceccadfdffdfffadaceeecfcfaddeeccdefcbeabbdfdbbddcdcddcddeffefadeeecefecabfffdcbcbabdeacadcdacabcfacffeaeaacaabcfddcbbddcabebdcbbbdadbfefdbecefdbeeedbfeadcaacfbabedbcfbbbfbacffbcbccfcabbabaddbbabcabddbccfaddfebcafecdfbcbbaafcaebdeabdfdccfbfbfbdfaecdeedabeefabbdfaefcdaefffcfaabedccaadbffaaaefffffaefbfadffdfeefebaafaadddbaabcfedabeebbaaaeedaefbfacefadaeecbaaadaabfcdaaedacfddceedeebeccbcbadbfbadcdfbaedbcafbfedfbcadebabddddcfefeabcadddfceadfebcffcffafdfadcaceaeebdbaeeecbdddecfffafbaaaddebdddbfcdcfbedbabecfcabbafedaceeacbbadeebbcdaaebeeeaafacabdcfafebdbeaccbacaccebeeaeeafafaedebbebefadcdfffbcbdceecedaeaecdaafdaccdecaacccdabdaffcfbbbfccafaedcebcdeffcaeaadcdbdeeaccffccbcffdadcbbebbfcccdcaaadccffaffdebedcafbffdbecbcfaafadcfddbffddcaefaebabdfdbbdeffdfdbcaafaaddeedecddefcccdcaefbcecfbcaefeaaceabcfebbdcaebadacfeccfdfdeceeddddfbcbaacdebdecddcfbafbbcabcaffabfbdabadcfffcaeabcfceeadbafedbbceaaecccecfafcceaadbfaffbecdeaebebbcecfffdbcedbaeddbcfcfdbeffbdcccadebbcadaaebcabbddaadecbadbbcfccbccfeaaacdacefacdbccadfcbcddcfcfaefbddbaceadebbaccfebdecbdefbefbbcaafbbaaabdcabbefdefedeccebcdeccfeafcdcececbbdcbbbfdfdeafcafedfbeacffadfacdabfcefbfecdacffeefcfaecdceaaeabefdffbbdcbdaaaaadacdaebefeebcdeddcafdeeadaddcdafafddfbaacedacceffcdbceafbbecfcbbdfcabdafeadedbddaaeefdfcfebcdaaeaebbcaeafdfffbbefaebffebfdffbafceddeaefcedbddbbbffcebfcdbdffebeedfadfdcbfbfeadcbfcceacbecacfbbaeebbccdaebcafdddafffdbadcecdbfecdddbffbbcfebadaaafccafcdcfdedeabbeebebfbaaddfbbbdfefbddfabcccbbefbdbbafaceaecbeffecaaddecdabdaddefdaacbaeedfbdadbbcebefcadddadbadadcccbfdbabebbcdfcedccafbecedafeaecedaddbfeacafabdcefeccfaccececbfbafdfdabaeefdabebebecbebdbbfebcddabdcbbaafacdebbbcbddfdfbecaebaaaeccbbdddfbefcddaebfcfcdbdadfcfeafadcafbfcebfbdabddbbaefebecfdfdafebaddcdddaceeebbecfafedfdcddfefbcfeebedfaaacfcecbedfccbbfdcfebccfcaadeadefafebebbfcbbacadfcdaabbebbddffaafbebbceddaeabfdebfeeddcdbaedbdaceccbdefcfcfadaedadeceeacacebddacabcbebacdeecabceabdcfddbefcbebaaddcfdeeaecadcdfbbdfccbdfacaeeabbabadfcccafeebbecdcebccfdffdffedbbeeeaaccbfeeefcefbfffbabcfdbbdfcbeebafdbbbbbefabbaaadadacbcfbaaeecfdccbcbcbaafbececfdbcdefefddaccecbdebddecfedddcbfcddfbffbdafedebfabbfbaeeeaaabbdbbbbdffcaefdbfabcafefebbecaabebbfafadfeabffdddeeeccfbeebebfbdddffccaccdbabbeafaaddcbaadcccafdebcfefcdadfcbeaaffdbfbdcceedcfcfbbcceedabccfafbefbedcbceadbcfdeddfaedefdfdbdbdbcdabcedcddcbffcdaedcafbeabbaccbfbafdcdaeffcaffaabdeaabcbeaceccdfceefaefdfbecbfcbdeccbeabaceefaccbefeafbfafaffafddbfcbeaeffdbbebcafabcefcbefdbfededbecaccddfbacebbedecffabccdbaafbebfddbefafedacecaeeaabccffacabddadceeceebacbaeedebcefbcfdbaadfdeacffaddfecaeaefccbdbbdeefaedbcadfcadddbdafadccfeebeabfafefeddbfaadfeaddbdccccfbeaebbcedeeebedffcfecceefbdaffcaabccabaadfabfffbffefdbacbdeabcbbcfcdaeeffbeeccbdefcfebcadebaffcaeceafeefaaedecfedfeecbecdebfcdccbdbdfbccdcfdcacfccdccfdbaffdbbdbabdabddcbfaedcedbefcafbbdeacabbcdddafbbcffaefcedcbacdffabfdcbeffefbefbeeecdccbafcecfddafeecccccbedaaaafbbbbcedebbdebdaeeaadedaccabbbecdafaeefcdbbbddffcbeecdcabadcaaeabaefabacdbedeecafbbadbccccbfaacbbebdabedefafefcfcbeeaffffdbaffedbacdcaecaeadbcfcbfefccddbaecaecafacbcecffbedbdbbedbfbccefdacccadbfbccccdbbcbeefaaecbbcefbbaacbcbfbcaebfeaadececdcfecafbecbaeabcaaaaceeecdbfebefbacfefbedfefdedffbdffcdcbcfcfbbccbebdefdfcdedeedffdadeacaefbafbecffdccfcfbbcdfbdbfeefbcaafdebfffebceebcdbfeaaaaffaefcfcadebededbefbbafceefbfdedbfbfeeacddeccaceacfbaeafeceabcebbaaccfbeacaaaeaaedaabfbfdbdcbfaecceedccafeaaabaafaafffbbffeabeacaaafabdfbdfececbebaffadacbceaaadcfebdfeeacbbbfffddecfcdccbcdfbbeebcdaaacfeeeebebddcdffadcaeaefcedeeecfdbfacebddefddaccebedccebeafdcfdcebbabcacfdfaabceffdfcdfbeebfbeffcfcebdbdbfcaddfabacfffbadefeffcdbaedbeeabeccafaddbcdfedefafcbbbcecaafdbbffcdbbafeaebabdafcefedfaaecdadfdccfdfeaeccdfbdaecffbbdebebcaaacefcaddeacdabbadbecdbfecdeefbddaadcecdebfaeedadacbccdedaeadbdfefdeeedcecfbbdfedcfddacdaddefcbccdadcbababcdbedfcbffeebfeceabbfefcbabcdafdeafacfcbdbdabdaaacaaededffceebaafeffeadadffcdacdaedacaffcacdceabedcaebbdaefbdaaadebdfeebbdaebbaebefbbdcfacdfbfefdcbbcfabbcfdeebacccbaeafcffdbfbbacdeeeafbdbcbdbaddcefabbbcaaedcedbdecffaccaccaaddddddbbabefeddafdbecaebbdfaeebaddbbdfbdbecaeefccfeebccbedcfaddebeedfedabdadebfbdaebadfcefddaabfcdfdaffbccaecbebddfbebcfbbbedecebadbbacdecacebfdaeeebcfccdbcfacffeebaffcdeddedaacecfebfdbcdacbccafdfffffdfeafaebbefcbffafefbbbccdabdffadcebbbfedcecbaeedaacadbfcbfcfccfaffafffcebeccddbbfbaaaccbcaaeeeddfadfdfdcefcadedeadeeadfbabbefdcecdfcfcbabfbeeffbdfbffdbabcafceccfdcaaeffbfffbcfaffeaebdbacfbcfffecfcfaeebefdbedcbfadccddedddacaceecfccacecfbabccccfcfafefbeadddbedfeceacbaeafcbbbbdfabeaadafeccebbafbafdbbefbebdbeffccabebfdbadcbdbaecaddbdeaefadfeafbecccdceeeceaeecbdbcdbabbbcabfccccfaacdbaccaabddfadabbdaddfcbccbddfccfdcdcbdddcaddabfffcbaffaebecabcaddbefbfbebdceecdefccbebeeafccdbbbefbeaefcbdcacdebefbfddcdfbbfdaaedacadbdbaebcbeacbdfdddecbbddcedcccbedefffdfeedefabccaffaeddabbfacfeedbcedcfeefbffbddabfbdcfccaeeabaeafeafcdcecbccfdbabbfadccabcffdadbccdcbbdbabfafedbfacddfafabaedcbffebbdbdabacebbdaeaacbacdbfcedeadfdddebdbfefdddeabbbbbbebffbcbbfcbeaececabbebcdddceaffccecbcdcaaadafecbfcaafedfcedbbcfdcaefaadcafcacaacbadbafafbfcffdfededaabeeffdfececfccaaedabddbfaecddbafadcbeebaeaacadbeaeabeaffddfecadeaeebddccedbcddfacecffefeecdadaccdeabeaeaedcdabaefcaeecfebdcdcdcdffcccaabedabbdbdcabbefcdfdffcdfadcfccadfeecedaaffacaaccbaedefdeaaaeaddcdbddaaedebeeacadbbebccecadfcdbabccaecbccbacffebfcfefbceeafcbebdcceaccabcdbbbccafcbdeccccaeeaacbbffaebdfabefcdadddcfbbaddedadffabfbccacacbaedceadbafffceacdfceffdfbfbfddaafbdeceedccccbdfbdfaedfbceeadefaabaabfbcfcfdcedeacbaacefbececdcfaaaeeaadaaedbeaacdffcbccddebbdcaddeacfdddbcdcbadfbeacecaddaeebcabfdaffacbaaeacfbdefacfccbafddacdffecbcbedaceabbfeabaebbeaeaabbdaedddedabdccdebadaaaacceaeeafbafeadfccbadfdfccdceaddadafceccdcfefbbaecdfdcbcadabcdbeddafbdacfbbeeafcfdfdcbcdbccfcecbbedfafdcfebeabbbdccacaabbdebbfbdfeeccbdbccbbbaddfcafecccdedeacabbeaecfabbefdfbaecdebebdacedfabecdacbfbfcdceadfbaeddaeeccfcdbddeeeecbfabcdebbcabbfaebafefdecabbedcbcdbadefcbeeababedaafeafacfbfedbffddaafaeaddadaebebdefbacfcadacdfeaacebaeaeadacbcebacdefbadcebbebfdeaddbfeabbffbfbbbfbefdfbccfaffbdcafbebaebcebedbbcddaddcbaaedcdeecceaabebadcecabdfacffbbffcaddfaeefddefaaffbecbadeaebccfaeeefafddeddbeaeccadeccbfdceecdafacddfdefdbdcfaffdbaaaecfadbcaffdededebdfffcbffcbccebdcafebedddcecdebcddfeeccbcdcfebdbfabdeeacfdeeffbbebbfafeabeffcbfaacdaefedafacbafccbcafaccecbfedebadcbdbefbbadffeacdfdecaaeeffbbddabbefdafdbebfdcdecfaefcaadfdbffdddfbdefeedcadfcaabaffbeadedeebcdedaedeceabefeefcabddecaddeeefebdecadbacbcefaeeedcfddcbaeeeadfadbabdcdeacfabfebcdecfadbbadbefcdbbfefebeccababfdcbbccdececebadcaabcfdaaaffabadfbcecafbdcedbecadbbbadcafccadabfedebbdecfbbeaddaeeebaabebdeeefeffaefdfdbcdacdcfeeefcecddcbefceddfcfcccfecbdfbcdccaadcdfdcdabcacbdbcabeffeccdbdaeabfdebaababafbadadefefbfdbffebdbcffcaeaeaabcddebfafadccbacaddffdeddaeedbfafcafdeeeafcdceeebbadebccecafefabddaaffcadaebfccfdddcfecdbcbbcadfebcaaabdcacffcddceadeecdedcefffbaccbdbfcfcfebffacbbdfbaecebefebdaaacefcffddadefeaeedebebfdcbafebbfdefdbaefdeceeffbcbeefbeaedcbfaffdbaeccdbcbaccdedbdaacaeecebbddbdfeacacbbfdbdbcdefbafeedaceccdefaabbfdacceffdfedcaccbbdbbdfddeeebceffedacafeaebfcbbcaecafceecfffafebdffeebaeebddcdbedbefccbdeaedeeddbbbadedacebaeeaadcbccbebecaebbfedacccddddffeeddddcebebfabbddddbeaddecfdcbbcbfebbdebfdebdffebaffbdcceccaacbeecbfbbdccdeeaffcaaeeebdefcfcaabffeaceaddbfcbecdfbebebdceafebadeeefebdaafadafafbdfffcfbcbecfdbfcbaecaecdbeeeaaabfabffafeddcffffaaeeebaeebdedcbdbfedccdbbacadbfddddadeadbdabdeedcbacbdaeedadceddfadaffbbefffdeabdeeaafdcbbcdfefabbfbbdfdafddaaccbecfaabffefbebfebdbfbbdbdefeffeabcbceacbcbbcdddeadbcdaffdecebafcedabebfdddfcaaebbebfcffdebfabaececcfcabceffdffcbdbfbacebfddbbedfaecaadacefaadaaafccccaafdbbdbabcfbaacbbaafcbcbfeeadccffdacdbaffdbfcacbfdeefebbfafaeddefbebfdcabfdbfbeddcacbfaebccfbafaddcdaaeaffedaaecaebbbdbcfafbbccdfaeeccfcfdbfffcbefcaffdffeacfeebcaaefcfaebaabbefccfeaaefeeaddaafdcacfcefeaaefffebddacfffdbdfcdcdaeddddefdbeaccadedcdbbdffcccedbbfacadffaacfabddeaaaeefcfdfabfcfdeecfeeadabdbeebbceaaabadefccdeaefdedfbbedbdbabcdcfccfedafbaffcbacdaecafcbafecedbcaafcfaffcbafbaddffedcafecfaaeecdadedbaeafebacbcfffdececdfbdbbadfadcafaefaceefbcedadeacaedeadfbfebccccbaadfecdebdaedbeaecfbaaceaabafefbadebedccffaeeecdeadffefdaedffaaaadebfdcdaddadbcddbeaeecdecbecafccfbabfefaafacafaadbfefaddadcecbdadbffcdeecfbceaaffdfccdcdaafacbcbffabaccadebdbefeccbdbbbfecbedaabbfdabdedcffdddadffcdffebdcfeaffadcdfbdbfaaebbbeaaccfecbebfdbadbdcabdacddadfdcbbbdbbfdcebeeeccadedddecfeffbbbbfefcecfdfcbceafbdcdaeeaedddacbffbfcdbebeafaddeceacabddffecbeaedccffafbaebfccbbeefdcdbfecbaaefdaedcfafbcfeccdfcfcbdfbebbcebabdbebdfdbddefbfceebccdebffbcbcfcdbafaabbcbdacbfbdcaadaacaabdaaebeecbebdefbbadddbbdfcccfbecdaddeadbdedbaabeadbfcecedfcfbeebacfbdbcacccdacacfbcacefbdadcaefcadaabeaaafcaecedbeabaeffafcffdbceebfabeeebbcfabdeeabbfbeecfcdbbffebbafbfecabdafdebababaaefcdafaaeecfaaacddcaadfbfccedaecaafcbccfabdeecaeecdffaacebccfabaacdeecfcadbbcacbefacccdeeeddffaedebccdbcebfdfefafcccceeaaadabadaaafaedafbecfdeabddfbcfdfaabdfabfcfadcecddcdffffbabdfbfcfecdcfecceeebedeeebaaeccbeccdbafdcbdfffefceaafdcfdcbcecafacdbaeecfaebaeeaedcbcafedfcffbcbfffbdacadcacfdebedcdacfeeadedbaceabeebaafedfeabbddfebebccdcdbbbeebfcbacdacacedcfedfbcedebecaaddbfedcdaddfbdecbefdafabbaaecfcdaaaecbbfccedbddacacbfeadbbcaacdaadbeedbceccbfdbffbacbeccfebbbdaadbaeeffebeeecedeefaacbadddcadfbfaadcabefadeeccebcefbecfcdaafcefbfddbafecbcdcfabccaabefafbadccffbedcdedfaacecfcbfeacdcdaeafbacbebbfeccacfbbbbcaaffcfbcbcedbefdfafffebaacaaaecbabcfecafcbefbabfecfecbdbefdaabfeeeacefcabafeedbeceffcccdacefecccaebdfcceefadbcdcebabddeaebeaacebceccbafccfedccfdfceebeaaebabbabcbffbcacbfcedceeeecefbbddedcbddfacabafddceeeeddecbeabadefecbbdbedcdcaffdacbfbddcffdaeccbccfffecbffdcdedaeeddcfbabbefeddaeddcaaeaebffeecaafabffbbfcdeebfafdbfeabcbbbefafabfdceedaabebdbfbebdcacdfdfbdfffacebdfdeffffcfdadbcabdaddafaeeaeeadddceffccacfbeafecceedafdbadeccfeadbadfadffefbeaeaeaecfccefadaefceffeefafadcefbbeafafbfcacccaaadcfeaabcdcdeaaefadaabeabebdbadedddecbcbdebcedecffddeabdfbfcbbafcbafbedfaccddabbfbefdfcbeecafcebecdcebeebedcebdbcaeeeddfcaeccfadabcedcfcefbcfffcebeffecfdfbdfcfddebdcdaccbcafedcbcfffbefbfeaeaedeaaeffdeadcbaaadddaeabaaedebbdeadbdffcfbfdbfbcaeccbcedbcaaecabdadbeccebdfacdaecfffddaeffedfcbbcffacdcefbbaeedacfcacccadaadaaecdbbadbfebeedcddffecffddbcbaddefceeccedfafaaeabedbccdbbdbaaddeedaacaedeaabeadacfabfbfdecaccacaebefeedacdbaebaacceeecaadddebbdcbadfefadaceccdeefafdcdceabacddccbcdacbafafdeabbfcedbcafadcbbddeeedceaaadcfdcfabfabaaffbbeecababbcecddeadeeeddbccbfcecadddeeffadabcdfdbfefccccaeaffddaccdcaafcdfeaaddeeaefdeaccebcbfaacabaebdcbebdccfdeafffdabaeadaaacdaadccfcbecddfeecafffddcabccabcccafeffdacefbdbcfaacfafdcaefadebecaaaacddadebbecaafdebdcdbfdfdafcabcbbfecdfefedaceedfcaaeeaaeaeefbfeecaddeeceabbbcbdbafcebecdecdcbdcfaffabdfeacdbbaadcedabfceaeddceccfcceaaefaafaebfaefdebcbacbdcfacdebeaccefaedfeafacffdccbddcebcebecbdbabaedccdbbdafdbaccfffaaddddabfabfdffaafabcccbcddfcdcceecdeffccabecadcbcbacdddfcaebebddbdbbeccbbbabbbfccbfffbbafdebeaddfdcffaebacdaddbdecbedeaecaabbcbbebbcbcffcacbaabefcbbecbabddabddfbbfbefdadacdaeefacbecdaeddaecbdacbebddadcfbfecdabecbbafeafdadcebcddbfeebcbcaecbeafcaedebeeadfcbeaecbbabcafffdaaadffefcefcccdfeefacacdedbfcfebaccadaeaffdabbacbecfddecfbbbddccfeebddbdddddefabecabbdfeffcefaacaecbaafdcfbcdcdbfdbfaacefdeeeabebbcfadccedefaacbeebbffbdffdfcccfcabecbbebefecdcbecefafcddecefabbbabeeeccdfeaffeabadbebbaefdfcadcfaccbdacfdfbfbbaaeedcdecceadfdafaaecbddcdbeacbdeeaffffdebdceceacdecffffcaafbfcadfeedfbebabbcaaaaceeebaddebdddaaeafcafeeaaadebeeffcadcedfccbabceafdedaacecdccebbededcfeacefedbfddadcfaaaebdabaeeeddfbecbdccecfdebcdfdbcdceabadfccffbabcabfcdfccebcecabcfaadbedeebdbadfcabaaafbcfdafdeebbbfebdaadfeaaeddfdfdcbffaebcbdbabebcebeedaeaefebcafbbcbcfaabbdbbffdcfcfeabafcdcbcefededbccfaeefaadbddccfbebbdbfbbbbabbeacafecadcbdcfcdbaefaabccfeddbccfeeecafeffdabdaddabbdccadbaebaaccdafcbfcbaeaaecafeeaabbdcfacaaffdbebedcafdfedbbeaaeaaebafebdedceabddaaacfbebedbcfaddbcaedaecfacadaafaadfdfefaccdcdfbabdfaaedbbbcfabbfabdedfbcaafcbdddbdecdebfdcbcdbcabdcacfdffeecaeacbcbeafcecbccdbbbacdefedafadcbbabdcfbddfbcaccafdfcbeabadbaaaceabdcbaffefaabbadbecdcafcdbbcfbdbfbeeefcfcbcfedddbdaeecafefbdbcfbafdaaddcacaedbbbbdfbfdbeafccaecccaefaadabfcabfeacfcbedbdaeeddcffcfedbaebaccffdeedaafedffddbeeaefcfccfdbedccbcddffdcdefdfaafccdefadfcaabdbefccedfeafecddceaeefdeddcbdaabbeefbbbefbaadffcfbcedfdfadebcffeebfabfefabfffabcadcdcccfacdcaffedacabcebdaedafcbfabaaebfcdaeaebfdfdacdbdfcbfacaafebabbfadafeabacfbdfdeafafcdfbfacfdfbcbbffadcadbadcdaffedcfefaabceedcedaffdafccabcefeefdcfeaeefaefeadfaebfdcdfdefeecdaaaedfbafcedbacbafecefdcdceedcacfabdeadcfebfdeccbafffdcffbcacfdfbcdaccfefbfbffbfafbcfedfafbdabbbdeedfbcfcfdcccaaaeecebddcceeaaeebbeddaeaeedbbbfefddbaccbacacbffcaacfaabfbefddbdaccfadbbeabacfdfcddecbafeedceaccadadccfbffcdadaaacfadacfcabedbadeeebadebbddcfeeabcfeebbcbcdbdececaebadedbeadcbccaebebbdafabaeeebcbabecdefbccdaecfbdebaaddedeafceacafdeacceabeefbbcdecfcebbabaebaafbaddfcbfcdaeeedebeabbfaacdbeefcbdcbdcaecaafccdedcdaccddcccadeccbbcdeedbfbbdbebeffcaadecafcfdddbccdfddcdeefeedaebdaccbbbeabfbbaeaaefebffafeaeebceaeadbfcceacfecfbeadbcbedaacbbdeabdabceaffaafeddfbfefaabcbffcfdcecdabdcdcdddedadaecabefeecabeadbdbecffffdddbccfcfabdfdcedfbdcdcbbfdcabeafbaacedfadffbbadadeacdddfdaaaaaeaadbbdbebedbaedbfbdaabffeffecbefafbabdcedbaabbabbbaadfeffeafbacfadebbdcabdfdadcfdfebebfbfafccaefffdbeecdfdddfcceeddddccfeeddabdcfbbcfcbaeefafaafecfccdcdbeffaedfeebddeadffdcafdfecacebbdecffedffcffccadaeaeafccdadccaeadebebcfcdacfdfeefaebddbfbeefbbfeaadedecccfbcfacbbddacbcbcafdbdbceceafaeeecacaececffacdbbbcbbaecfdfafcccbbdfcccdfbbeefcdcecdbabaffafcbbbbdbcfccbdddbedbfbabdadacedfddccdeeaffbffeafebdcffaacfbabafddfeaefcebacaccfdefffeffcbdedccbbabdbceaabaadbcccfffeaaaeedabcbfcadefefdafdffdbeefeacbdbdeaaafbecebddbdfcfaafafededefcadacbaafadfeffeffbdecdbeebdfcffcedbaebadafffbceecdedbdddbbbdeadfdeeabcceacebefaddfbacccbecdcfbcddeacdabacafaeffdcfdcedabbcdaeefcbfcdfbcdbccdcfacdffecdaededdbfafdbdcddbdccabfbfcefbcbdfabdefcedcffdbdbaffbaaecfeacfadebceddfdfbdfebdddafcdbdccfefbcaddacdceaddecdcfbdbcfcdebeafedfcaffebfaaddcbafaecebecceffefbccfffeeaadffcaeecfbfbaddbbdebaebbfabecdecddcbcbeaceaebafdacfbabfaebccddfbfaaeaffdbeabfdfeadcadceabeccbecdabaeebbfecbfffbaabceacdbaafbbeabedfbbdcafefdeaacfcdadbcdcaaedfdbeadfdedacddefeffadcfeafabdccefbfddfebbdbdfcdffeffcceecdbaaebecbdffcdcffdbeebfeaebdfffdeafbfddceebdfccadaeebdefbaadbccdcdceeefabcdfddcdaeeadbacdedceafcebedfbacdabfefdfacaedbdafedcecbcaafdfbfaeefdbcafadafcdcbddfecbdadedecabeceeaecfbfdbcfceacfbdcaeafeceeeaadeffcbfaaadeaeaffeaaaccabafffaeccdadacdadfefccdbebbfaaecabdefacfeddeebaadccafbeddeceafecfcddcceccefdcfeccffeaecffdaefffaabcaedeeffbabdbcecbefcdbefbdbdbfececdfceafafdacdcdcacfffecfdcfccccdedeeaabdffeffcddfcbcacadaabdcfaedeebadfcbafbcecdcbdfccaeafeeaeafbbbdcfaddccdefbddfcbbfecdacedeabecdebeaefaedcaebcfdbabdfffbcfcccfaaaedfadadcdbcbddcdfbcdcbdadddeeaebfddfccddbedffeadaafefbeabfbccaacedefdedcdfbccdcffcfeaabbfbdcdfeaddebfceefecdccfeabadbedaecaddafdcddfedadeffdaffbaeeacebeccbdfcbffbffcaaaabfbcbabecfcfcfecebfafcfcfdaacdfcaabcffbefbfebfccbbfcccaaafffdcfdfeffdedeebedafeecadccddcdcacbaeedccabacefdcfddebcdbacefccffaefafdbbdaeedbbebcbafffeadacdaceeadafdedfacbdabfedbecfdebefcafacadbbdaacbfffabcbfbbfdffbccddabdabcddeafbeedffeeeedfcacffcdfdbceefffbcbfcaebaabbfbfebbaadcfcfeabbaccbddadaefefacbeccdccdbddadcccfddcbffcbbdfcdabbbabeaefcacfcfefefdbbcecdfdbfeadeeaffdcfbdbbedcaeeefdbdaedbeaddfbfddecfadeecfdccedabddbeefebfdacaeadcecbaaaeeacbbeafabcdbdeafadfdbfadfeafcaedafccecadccacbdfbecbdbbefcdbefaebaabcedffccfbddfeabbdffdddecbffadcbbfdccfafebdcdeddaccdebecdfbddaebfbdddfbebeeefadaebffdcbbbccadeebecfcfdbafcebbafebeddafacbffecfbddeefefcfdcecedccceebeeeeeadcaabfaccfedeaefeeabdbbcaeabcefddeaeeadddafebfadecaafbdaeaebbbdbaaefdaefbfbfdccdbceefdceadafcccbbdfdbadeedacacfbdbceefbcabbfafadbcedadddbfdcfbecdefdabcfbddeeedcceafbefbaadfcbeaebfececbaafdbfcfcccdcceeffdfcfcabeefdfffffdfbfcdafcffbaadebffeaffeecfcfabeccdbfcedadacedbdcafcbfcaacfdbaaffaacbeadfcbdffafceecdfdcadefbaeebbbcdfecececcceecbeeeeacbcecaaacccdeeacaddacfdabcdaeddaefbbcfecbdbbadaddbccacaecccfacdfecffbbbdacbebeccbffdeeeaebbefeaceaedbdbacfdcdbbaababadbfdfaeffbcdbcaecbdfceeeaafcdfdceddbcdcbbfdcddaedadefdfbcceeeeeaabbdffdadcebdfedcecfbabaafffffdccddcabffbbffecfdabdacbacdbfeafabfaaefbcfdbbfaabbddfdfadccaafbbacbafaacfeacfbacabfcecabfbcbabbbabadfdecdfbadcbbacaacfaccccbfdbefeabfcddcbeacbbdcadcdbabaaaddcdeacddfcffbcacfedebabfeeeccecdcdaddcbbdbfbaaaddcbddeecfaccafeccfebdbeeedcffabaeeceeedcefabfeefdaebeacaabebaaabaddabbfddadacbaafccfbdebecebdbfbdbbacbfadbfdbaabcafdfbebffcccbdbedefdbcddccefbfadaeffacddbedafffbbddfdcbeaabeebebcbddcbabcbdbafadcdacebdadefabaaceafeabacefecfacdfabbdbfdacbbcfdedfcdeedfacafdbedfefbedcabfbbecbfebaeeedeeadefcdbfeefbfefdbdcfeeafdbebdbceddbeebfbfccbefbccbfbddbbaceceeaecfcecfdffcbcfacefcefdbbccefdaecfdcbffeeeabceacbcecdcbfafcbfafcaafbbaddfdaafaabbfbfaeacadbabfaeccdaeafacdddaddccaaefcbdcbddffcbcecdaeacafeebaaecfdbccafbdbfeabcafecfafbfaffadfcfeaacbfdacbbcadeddbcefafcddfeefbcfbdccbcdedaeefcbdafcbadcacfdaabdfcefafdcbfbabafeccdfbeceedefeeabdbcedbbacfedfdafdffbfedcfedebabcaefeafaacedccafcbeddfedffbaabcdffafddadbfaeaaddaafdedfbbfdebfcbdfbaeecccbcdebecaadeabddafbaaddddadfefbfdaddabfdceffdecbcfbddccacfabdececabcddeefceddeacdecceedbfcbdcdebadfbafaacdbbedbcdcadedffeafebaaffcbddddebbadfbcfcdeadffafbeaebdfaecbbbdbebfdfcddcaeececbceeccfccbbafaefafadacaeeedbeffcfadfdebbaeaedbdcaebfaeddaabcfbffcbbcfcfbeaaccabafdecfbeefddedcabceddafadfbfdbbbdbfdcadaefdcafdbbffccccedbbacfabeeddeacffdbdecabccebffbaccfcdabddfceddbcedffbbfaeaeeadbdbbaacacbcddceedaddacddfebbdeffbcbccfcdfbdeeacaacdccfbdacbbbbdccaabefbbbaabbadedddfcedcefdddcbfadcdfbbfbaacffeaccefddcafeefadfbafbfaebedbbabcdccdfedfbdeafeeebddddddddadefaffdaafacaabeedbfbfaeddecaeedcebecbfdfcbafaeccfffbbfbbcaffdfdbbbecfbaedafffffeaaedcafeafdceeaccfbaeeaadcccedecadfabaadfbafffabeefebccbfeefecebbbaececaeadfaadfecedaffbdecdaeceffedebbedbfebdffffdeffdeefaddccafbacefebaaefeeefaecedfacdbffafeaaacefdfbcfbbeacfefcbbbebabbabfabdcfcfedecebdddaedaeeafdefceddbccbfcbefcefbddcaadaadbcdaabedbeadacdfbbfefbdeddfbfbadaecfeddddffffbddadebfbfaebbaacbecefbededbbeaeccbccdcdadbdaabfcbdebbaeadfadeecbbffcccabeaccafbacfbabdafbbeedecebebaeeeabdafcfabbbfebfaabedcbaaebffaecdcafeacecaaabceaffabaabafdedfbeafbbaebbabddacadccbceffaccabfededbaaccdebabdbfdcdedebfbceeabbaeadafdeefecadddacdeccbceddcbbbfcaffbfdddbeeacbefeabbcfdebaeafcbafeecdfafffbdddffeefecbacfbfcecaaaaddbddeddecdefbdefbaffcbbecdfabcfbcbafeffcebcdcbafbabdcebddceffedebaffacddfeedefdacaeadeceecdfcfaadfeeaefcbfaabdedcfcbddafcebacdbbffcbcbaaceffeebffffbaebefdbfeffddddcafbbbebaeeddcbeffdfadcadafadacefbdcababeeaaefbbabacccfcfccbdffcacceddbfcaafbddbeebbbaaaaecaaaffbfacdfeaaeadabfbecabecbfffcbedfbdcdcabbdbabafbbffccfdfbedeaacfaedeeeceaededfdaadffffadbddeffefbdfebfceabdfbdcccebcacaedfcfbbabfcfaaabafadcbbbdfeefddbdaedebdacbeeaaaebdceefacfcdacebfdcdaaccaedacecbbfcbbcdcbdcbeeaabdebfaffbafaabbbcdadebdcdadbddffaecceaadfbaccbbccebceeeabbcfebbcbfeacbeaefabeaddaabfddadedebdadeefddeacbffecbdaadedbadcfdbdbecbdeadedcdadbdfecfaafcccaafdcbbfbeebbbedcbcbbddfaefacaecbafadafaebbfbcdcfbbafabcdbabffeddbfdcbbeacbbdcaaeabcaadbecccecdfdfbadfaafdacdfbddccfaaeabcbacdebdbdcbedcbbebcedcfacbbfeeccbdbafbfcebeaebbfbddecfdbebdcaabdeccecdaeddecfbbfadaacdbbbdadbbdcbfbffbcacbafeaceadbbfedbacbeccbfbcdaeefefeafcddeedcfcaaebafaadefdaaedffecdfaddffedccffbeeaedffcaefaabaaebadeceffdbdeffbaedcceecfccddeeafecaecadeecffbefbafdaaebbcdaecbadebabbdabeabcbcaebabccfacfcaffcfefceeaaecbeceebdbadeaabddddecfecafceaddfcfbaedaeedcbaeaefcabafefaecfdaaafcfebddabcccfcfbffcbddbbffcbeeccedadefbddcebbcbfbacdedbbfabafecbdbbbedfebcdacfcccbecacdaaafdfeacfdfddbdadddcafdcdddbceadeeeedcccfdedfbcedcbaeebddefaecedceadceaadfedadddbeeebfbfcfaaeaacdbebdeaabeeaafddeedcdccfafbcbbbebbcbefbdaeecfaefdadbeebcfecbaebdeeebffdefcfdbbbafbfbfddadfadaefbedafbcacdaecddcbccecccdcbdbebbabccbfbbdefeffaabbdbcecddffffdbddbdedaacceabddcdefcabeedacabbeeffaaaeecafcbabcaeffeeecafaaffeacddcfaaacccdaabeedcfaeffabaddbcaaeadbcdcafffdccfbecaddcafedeeffedaeaccabbeaafbcebecbfbadffbadedabcdaffdaadddfddccecceeafabfabacfefabfadecdfcdeecbbcaaefacbbbcfbbcccadccfeffedfedfdfeaafebecfbaabecacdcefebebcdeceaceddadfdefdddcdfdbcfebaffaffcfbefefdfcadbfbebcfecaaffcffabaabefdddaffbeccabadcaebcfffccdecdeabeebdddbaefcbdaaccfafaabdaebfadadafedeafeaeaecfcdbcfefeceeedeeefefefcbefaefddcecacfdbadbaaffebbfdcfcfaeabdfdbcfffbabcdbbcefccdacfafbbdcfffeccadacbfabacdfdaadebaefeadcafefdbcebadfbffaacadefaacbcdafebcebdceefecaeacbcbfaaebbbcbfabdbaabeaefcfceaefbedccdaeefbdfecffffefadddbebdaceccffcccadadbecabdcedfbadefdcbbeeedeedecdcfccccffbbdbdddfeceaebbcabbdaaebeecaecafdbebcfffcaebacffcfeeceaceadfcfefecebaaccbfdbeeeadfebfcfbacabfedbddbabfcbaaabedcfdecfdecafadffbbaaccffddabddabebbaaaedffcdfdbddaddccebbdeeaefccfadcaedaaaeadcefdfbeabdaeefeaafdbdeaeecbecbacdffbeaccacbbbeeeeadfbfeebafaccbebefeeddcbccffaacdeabefdebdfbeecaabbcaadfdfcfabbcafedfdddebaddffdacbedbfcefaaaeabbeedddaeffdaffbfdfecfcdddecfadcdbfcfdaabecdbdabbcaaebcadaceeefafbcfcecafbeeaadfbaadbbdcaccffbcfcbdebdeffeedcbedfbaeadaddeccfbcdcffbdefeabbbdacfdbfffebeaceecdeabefccbeacaccedbdcdfbbdbcfcdfdaffbbeadcfadafbbacbbacfccecdacdafebafbfcebafcbcfffbbecfcbfdbcfaaeaeedbcebcffbfbcacabbcfaccafadffebcfebdeebdabecdecfacbdfdafaadcadbcdedadadddeacadadcebfeffbedbcefeddafeeacaceceddaeccccfbbcbbefcccffcdbbfbeecaaaacaaeaadcfcbbbdcebfefccdbfeeaafabdfccbadebfacbabffecbfdbfbdaabdcdccdacacaadfcaaccddfebaeeadddccfeafafeeadbfdbedbeceeaaeadfbfbabdfbcdedabfeaaaeacfecfcdbcacdfccbeffabaacffbddcdddbcdbcbacbeccacefebcffcdccbcacedbfaedfeddfbdcbdcbfdcdefbfffbeeaacfbebacefabfedebdbfacedefbceeaaafdfcfbfdebdffdeddeeebcbacddbddcfeddabcadeddbedacffaadeccbeffbfebefdedcbcfcdacecaedfabdffdaccceeacffdcebedffcebcdfcdcbbcbbfccdfbedadebabddaaeafcfaabafecabcbeebfafcabbcedbbcaadfcafebefbbbcccdddebecfadfdecefdbceefdfdddfbdbecfebbbbfbcbdbaddabcddbfebbaeeeecaaadfeedacebdcdbdcccdefabfccdcaaceccbdcfafbdfaaedfcaededbeafadfbdcdccccbacdcfbefdfafbbffcbbcfeaaadefaaaadbbbceacccdfabaecccdcedffedbadaeffcffdaafcfafcdbfedbecbfabedfffefdacfaddaabfdbdcdeabdbcdeacadedcffbabdfdfeaadfceadbdbaedfbfaeebdaadbaafacaeabaaaaadedbebebbecfdcafaabaddbadadccfbeadcbbbdbfdcabccedfbeacddaffafcfbdeccbfcceeebbdcbedefdbdcccbfebeecccfabaefbdeaecfbebbdebaedfdbffbcbbdcdcfbeabefbbceaafecbdddafaecbafacdfaebddcfdfbcfbbcdababaaddacdcecbabdcdcaeeccebefccbefbefdffebaddebdcaabfbecfcabdfaeabfaffbdcdfccfedeadbdcfcbbfcbefaaeeebdcadbdbcefdcadfabddbaceefbfcecddcdcabafaeacefbcfcdbecdbdadfaddafbedcceaaacceacaebdeafbdcbfcfabdcedcecdfbcdeaebebcddfebabcebcebfebbbcfbdfdebedaeccaafbfbfaceaebbbcfdacacfcbccefcccdfdebdabfcccbddaebefebdeabdfedaabfadbeabafacbffbdbfcfccabddddfbabebaacbfebefdccdeadeedbabdcfdecdbbaefeeaefcbcbdddeeeefeefadbdeddffefdbdffcabffcdbfacfcadfccedcddbccedfddcccdaaabfcadedcdafefdffcbecedbcdebbefaebbeecfecdfbfbdbbcbbeeabcdffaeebfcefcfefdbdbdfaafafdfafeafadbffadebddefbdedeecbedeccadbbaeefbebffcfdeeebecaedefbdfbeeeaecbeaacdaedbabafeaabcacdfeecfafeafcedffcebbedcbbafedbfacbfbefaeccaaaaceadeaaaaabacfbdbefcfdbeafdfbefafafccebafffcafeaecdcaaececeddfeeccfcbbeafcbddceeecfcfcbdedfbebcdbfddfebedcabaefaacbceccbbaffafadbfebecbedffabbfffceabddaafdeefcfbdeccafaadeafdadcfcccbdfeeadebccdacbecbbefdcdcceaeceeaafdfcddffeceadbfabdbbefcccdafdaefdccdafddeaaaccabcdfcfbbcecccefcafeacdfaeefcfeceabaebfdfcbcbfdedefabbfacebebbdfcedebacbafdbecbcebdecaeebfedaaadbcdaebfedceeebfdcbaceabdacecebcfeacdccecdcbdeacbacebeaaefaefdfddddcdaededeacedfadcdeedbcbffcdbacdaccdabfffdffcfecbfbddeabebcebbfefbbfffacecedddadcacdcdaddefecabafbcebecffeaefcdefedfabadfdabdaeafecfbabbeceedeaebaeafaafebcbeddaccafeaeafbeeccbafcddfdcfaabeedeedaafaeacefedceafedfeabfbdebecfdbceadeedbbbdbdaeffcdcceaccdbdbeebaabbbdaecafbfcfcbbbbeeeedeceadbcebddfadbccbdcabdcfdbdbaacdccbfcccbcdacccedabeccdbbbbbecdbabecddcffbadaeeefaeecffdcddebdaedcaedcddbbdbebafaaecbcbdbbaddabceaabbaaafcddffdbdbadafdcfaaeecffefbfcedddecaceebbbaefbeaceddfcecacecdbbfbacddecbdacfffffbabdeefeeecefffbbdcecbcdbbaaebaffafbffdecbdefdbebeefecaceabddceaabdffddaccddddcdeeccaecfcdfcefefaefdbadaceafbebafbaecffaeafaacefddfbbebefecdecddbebbebfffaccbfcfcdadcfdacecbcaafdeddaecfacdafdfbaafdfdcbdfaeefdffdeadebceaeeecdbdbbdaffeccedbadfbbdfdfcbbbbdbdcfbefcbbfbacaafdadddbcbbabddddcbdaabaafeafccbccfffcdbcadcedecbcedeaaddbabacffcbbaeddcddecaffbfdcecadededdaffdadefdeabcededfbcdcffeacfbfdbebcbafbaecfbcafaedddfadffbdfcaddfdeddfdaeafacefacfeebcfbdcfdebbadfababdbeebabcbaeacefdfabfbdcadefdaebcacafdcffebedcebbdcfcbcbdcdaffcdccfddbaefbaffeadabbadcdffecaeaceffdebcedbeaaefbeddcdefbddedabfbddfbbfecdccecfabcccddecedacfcefaeebecbbbbbfcacfccdcccbcdcedeeadcdbafccfdbdbccccfdfffafbdcfdfbfbdaedecaaaaceddcaeebeafaeefbfbeeaadabebddabdafeabcaaefcafcffbfcebbbfdfcdcdbbfeeeaeafafffeddbdccbefecbfbafeaaeeffedbabdafbbccaefeaafdbfdfdccafaaedbebfbfaeaddcebcbaeaedcbcbcfcbbbaefdaacffceeecdbbaaccedababddecafbfddebfdcfcfcdefaeaecfaefcafeedeaccccfebbffdbeadcadfedfddfdfcbbafcceeeddebacbcdbcdeededefbafbfdefebeebfcfccdddeaebddddadfcecccdfebaaddadabecdfdeceebfdbbaadbabddcbfcdbdccafaefecfcfacaccccebacaabcbbaeccbcedffddbadbfaebefeaeadfbcddcfcfbaeeccafabbbfdbadbeddbfdeaaecaaccabcaeccdccccdcdcbbbecbbcffceafedfeddfeefcabdfafbdcfdcddffcbdbabfbacfaaecdfacfdeebddebbbaadfbbafebaefafbefdacfcbcfbcccddcbffbbefbddaaffcfedbcdbcadcecbecbecabcffddcdeedeceaeecddfaacefebdababbfcdfafbdeeacedcdaadcfcbbebecbdcaecbecabaefdacdccebbefacadfadeababdcfdcedfabcaddaeebedfabafceefcdffdcadbdcfdcecbbadeafcabbddaffbbcdcdccefeeaddbcafcfcafeabcbccacafadfbeebaecdeceedfabcfdabaaeaafedfdefcddacbffbacdcabaccdfabfcacfbecfaeeaefbcbbffccddfefacadfbabebacedfacceccaddeedcefeabfbfdcfacfafdaedbbabcecbffeeeaddcfdecbdcccbbeeefbaefffebefdedcdbddfbbdcffbbffeadfeabffceaabbbeefcdaffbafbafbecaedabfaeacddedcbcfdceaaeecaeabcfffafedeafbfbeafcfefdfadeebcefeaccccaafbbfbecebcdeeafdeaceafbaadddedbcaaffefabdecadbacbaebdcbabdabcfdacaecddafcfaccafeeabdbcddcbafedabbbfafffaececacebfadefaafcbabedceebaabcdddeededfbbdcdbbdeafefdadcfbbdfaedddcccecadbfedebcfafbcaecccadcebbdafefcafeacbfbebebbfccdcbebedfdeafefebeedaeedefabbfebeebffdefdceddbfecdeddaaefabdfccccabccffebcafafeecdbacadbfdcabffdccaabcdfabfeddadbcaeeeaebeaaaacebeddafabebaeaeaebdccbccdedabdcaabccabcfafbbacefadddecfdbdabeccfcacdbaaeeabebcafedfaddafafefcebebccdcaafaeedaacddddeeacadcdceecfbbdfbdbaafbcdaeccbdcccfcdeefcddddbeadceaecfcedfabbebebdcefadcefcceccddefccbafcbbcdabdecdfcabffaabbfebeababfceaedffeaafbbacfbadeabffadeffdabaeaedcefbaafcffcbaafcdcdacbbaefdfaaceeeaeefcafabdbfeaaacabfbdecfeecccbcfedbedccfafafaadeddaabcbdaadadaeaabdbfbccfefacbacafbbbfbbbbbcdcceadceffcceefcafcfdebfddbcfbccbbcbecfcccacccdbbcafbdcfddfefcaacbebfddcccbccfdadadcbdafaacefafdcaebdaeffcdfbcabbbfcfbcabffddcecbdfbebdbeececfaefcbbdccffadeefaecbebcddacdfcbecbccaacedebdfcefddfcfefdfeffbfcbeaafdaafdaebabccfadafdedbcbaaacfeaeefccdfdafdcfdbafbdecabdbadbeeedeececcdcbfdabaccbaccbabfbebbeadebcdcefbbedfeaeacecdadcdafbbeafcccbaadfcfecdeefafbebcdeeaaffbcefeccdccdbebeafebeebcdcefeffcccbddbcfafccbbeaddaccdbfaecedceabeaaddacddecedaadbcccdacaeadaadebdbdbbffcdbcdcdbdafaaccdeebeaeffcafedbaaabecfdbfbfaecebcaacdbbdaeedaebddbdefbbbececbfcbbddefdabdeeeccbbbabdcfacddddcbddcaccfcfbcaffaaceedfafdfeecdfaddfbbcbdcacdcedffbfdaadfbeffdffbccdcedfefcacbeaeeaadaddfcebadfffdcdbeeedbefbefffafafcdcaafeebeebbbaefdcecdfdfedfdfcfbabfbacbedabcfbaadffdeaaaacfdfcbfbdfffedfcbbbbcdbdbafdeceddcdefcecdcfcbaedfefcadeedabfcdcdeadebcaacffafebeabeedacfadadffaabadcccadbbdcaabbefefcffabadbffcfeabcfdfcafeebbedbbcfccbeffcbacfabfabfedceeffdccbedfafbeaeedffabafaffccbebdbafbfeecdbcbabddfadfccdfeacffecfebadcdcfbcabcadbbebbcdafbcafdecccbddecedccabcedfaaedfcbedeeafbfceafabafaffdfdceaccbaffbffafacddaefdcfdfcfcedbafbcbdebabdeaeeeaaadebcfdcedbecefdadfabaaafadcbbadfdceaeedebdcbbedbbdfbafaebefdbaffcdfdbfeedfbbffaaabcafddbfecfaeafedbbbeadfdeeeadcabffcbdbbddcbbccfedacadadefecdbdebbdcbfceccdbdfbefdcbfeffbddceaaaafcfffdfffdaccddcdfcfefbcdadeececdfacdbacefbfbbcccadcacceefbccdfababaccecdcdaddbfdeaffffbffeaffbdefbedbeadbbbcbedbdaefbbdbccaacfbacbfbdfbbabbdebbfaceccfceaedefcfeaaeeeabefdebcfcbdfebacdedaeefddbaccdacefecdbecafdcacfefdfeabbfbabdefeecfcbccdbeeadcbcbfcfcebcfbccdcbfaccfbdfebdbecbafaacefeebfdbbafbabeaacdbdffcabdecddfcacfacfdedebaddafdefeccaefabccfcaccaedfedfeaabbefeaefeaebdeafffddcdffcabeeadcafcabafdbbaafbeeadfeeabfffaccaeffdaefdbcffedccafbaafdfeaabffcffdfcedfcbbebdcaeaabfdeefaecaeefddabaaeefacdedceefcdaaffabdadddaefdfabfeaacbeadbdebdccceacfbaddbfeadeeebcefbffadeeedafbccfbcbddaeabecceeabdccbebeceaccacccbccffdbcfbcbdedeadffbcfbaccffbedcbafaffeccfcabedcddcdaaebcffffdbaceeffeaeabbceafacafdfeedaebdeccabffeafcbadebaebadffbedeceeebbbdadffafafffdeceecafebaeafebffabdfafabefdbcabcbaeefcfbacecedefbdedadfaefbadfbaadecebbafdefaefaccedcddbdacbafeeffedbbadadfabfafdfeffdbfeedbddbcefccbceefdedaeccacceeafcaaadaadeaefbaaafcfebfecbadbdafaecbbdfcddeddaedafcfacedbbaabdfbcccdededcaddbfcadbeaabcddfafeedbeadeeefbcfbbabdaacdbbacfecaacededfabbdabfedbcdadcfdcfcdebbacddfbdeeffadaafdcfeafbbfbebbfcadcbebfefdefbacdaddbebccfceabcedabcfbcedcadffbcfcddbbbbcbecccfeddeceabddedaffcfcfbbedbcadcaaeccacbfbbfaaeeecbceddefddfdeeacbbccabbbccdddfaaeadcaedaecfcefaaffcefdfeffddcaacdfefebadadfceddbdedadddfccefdffbcbdadaccfeccdaebaacacbbdbdbdededbccffffbeaecedaffefbdcdebbadcafcfaebcaadafcaedfffbeaddadfbacfaeceedabebdacddacbeaafdbfaeafbbecefacabbaecaefaabdcbaeacecaeaebbcbfbaabbbcdaefdcfebebfbedbcfbcadaccdfdbfeccbbecdcceddbcdadacaeedaeabbedccadebddcfbaddcbdbffdbacaccffabbbffeabacffdeebfddecbbcaffacceeadbfdbaafddbaddbbcbdcdefcdfecffbafdfcfaececdbfcebcdfecefeeaecdfdebeeffaefbeacdebcedbbdeebfdfddbbabcebbcebeccbaedfbaebbefcfadcfffffcceecfcafbcfdffccaaecfdbdbababaacafadcadffefedaeaeaffeabbbedbbbdfbebbfccebecbdcbcadccdddbabaebceedaddabefccddfafbdbfceaaebccbaabfacfeceacacaccceebefafbcacecfcccaadbbeebeffdbcecfaedacdafccaedfdefbecdfcaebfceebcaabaffdacfbffafebfbafceefccaadadafeccdbadedefdcfbdfbbaebddbfcacadbaadccecfcdefecfbadbcebffbfeacbeebeffbabfeaccbffccacbffdacdaafedcdfdeebefbdfeebafbdcfeeadcdcddfebefeadafdffeccfefbaaaafcaceadcdcfbfbdedebcfeebcfaadeefefbaefabfffddbadbfabeacdfafdbcfdcdadcaefdbaeccbffcabedafaffcaefdfdbbbbdfbfffebdebbbcbcacdbcbbedebeedfedeeebcbeeafedfceeaceddbbfcefeababecfbcdbdfcdedcabacbabadbcfadbbefadcadfbddfdbbfdbdaaafcdcaaaeaebcedddeffeacbcedbbedaaafbfefecdfdddfbfbeeaacfcebccfcbfbfafdfbaeedbecdadddbfcccbdffabceeeeebfcaebfbfbaeeffdfafacebadcddefedcbefbdcafefcdddbdcfefddecdfddddeeffcebcaabbeeaafeabcaeecdcacecdabaeaefcafadfdaabdcaebcabcaebdfdfddccdcdfefdeccaddeeabdcddbfbfecefdfaeaeeddcdacbbbdfafcebfaddacefcdebdecfdddbaedeaefaaedcfafdfbebeadcabfaafeebedfbbbaccbfaabfaaffdafcbafcbbeccbdebebebfebbaedcdfceedecaababdefccfbcfcaeaaacdaddbdddefaeaffbeabdedddddbdaabaaecfabedccabcfabdcbddcfeadcccabaedecdfaaeeddeacdeabdfebdbbbfebcffededcadceddbcfbeebfdcffbfddbcacaebcfcffbefeeffcacdbbabbebeeecfacbaddbaafbacdeebdadedddabaccaeddcbbdaabefebabbfcebdbccadefaaefcffbdbbbdaaebeccbeebefbfecbebfaffefcdccebafbdaeefbbdbdccafbbbedaaaffdcdfdfcebfddeedebbababaacafcdafbaefaebddadfbebeafacceb", 3, 5, 26));
    }

    public static int maxFreq2(String s, int maxLetters, int minSize, int maxSize) {
        int n = s.length();
        int max = 0;
        char[] chars = s.toCharArray();
        HashMap<Character, Integer> hm = new HashMap();

        for(int i = 0; i < n; ++i) {
            hm.put(chars[i], (Integer)hm.getOrDefault(chars[i], 0) + 1);
            if (i >= minSize - 1) {
                int left = i - (minSize - 1);
                int count = 0;
                if (hm.size() <= maxLetters) {
                    int index = 0;
                    String str = s.substring(left, i + 1);

                    while(true) {
                        index = s.indexOf(str, index);
                        if (index == -1 || index == n) {
                            break;
                        }

                        ++count;
                        ++index;
                    }
                }

                max = Math.max(max, count);
                hm.put(chars[left], (Integer)hm.getOrDefault(chars[left], 0) - 1);
                if ((Integer)hm.get(chars[left]) == 0) {
                    hm.remove(chars[left]);
                }
            }
        }

        return max;
    }

    public static int maxFreq(String s, int maxLetters, int minSize, int maxSize) {
        int n = s.length();
        int max = 0;
        char[] chars = s.toCharArray();
        HashMap<String, Integer> cnt = new HashMap();
        HashMap<Character, Integer> hm = new HashMap();

        for(int i = 0; i < n; ++i) {
            hm.put(chars[i], (Integer)hm.getOrDefault(chars[i], 0) + 1);
            if (i >= minSize - 1) {
                int left = i - (minSize - 1);
                if (hm.size() <= maxLetters) {
                    String str = s.substring(left, i + 1);
                    cnt.put(str, (Integer)cnt.getOrDefault(str, 0) + 1);
                    max = Math.max(max, (Integer)cnt.get(str));
                }

                hm.put(chars[left], (Integer)hm.getOrDefault(chars[left], 0) - 1);
                if ((Integer)hm.get(chars[left]) == 0) {
                    hm.remove(chars[left]);
                }
            }
        }

        return max;
    }
}
